/**ProgressBar是一种可视化的操作进度条。
 * 告诉用户当前操作的执行进度。
 * 横条进度条可以有两种实现，一种深色的，一种浅色的，进度可以分别控制。*/
package com.example.asus.dialogprogress;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**首先加入 ProgressBar的包*/
import android.widget.ProgressBar;
import android.widget.TextView;

public class DialogProgress extends Activity {
    /** Called when the activity is first created. */
    /**在DialogProgress.java中添加实现功能的代码*/
    /**变量声明*/
    /**第一个ProgressBar是条形进度条的定义，主要实现代码为第30行，
     * 第二个ProgressBar是圆形进度条的定义，主要实现代码为第31行*/
    private ProgressBar firstBar = null;
    private ProgressBar secondBar = null;
    private Button myButton = null;
    private int i = 0;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        /**第30行至34行是通过ID获取控件的对象*/
        firstBar = (ProgressBar) findViewById(R.id.firstBar);
        secondBar = (ProgressBar) findViewById(R.id.secondBar);
        myButton = (Button) findViewById(R.id.myButton);
        /**第31行设置监听器，监听Button按钮*/
        myButton.setOnClickListener(new ButtonListener());
    }

    class ButtonListener implements OnClickListener {

        @Override
        public void onClick(View v) {
            if (i == 0) {
                // 设置进度条处于可见的状态
                /**显示进度条*/
                firstBar.setVisibility(View.VISIBLE);
                secondBar.setVisibility(View.VISIBLE);
                /**设置对话框里的进度条的最大值，不设置的话默认从100开始*/
                firstBar.setMax(150);
            } else if (i < firstBar.getMax()) {
                // 设置主进度条的当前值
                /**设置主进度条的当前值（深颜色的）*/
                firstBar.setProgress(i);
                // 设置第二进度条的当前值
                /**设置第二进度条的当前值，第二进度条是圆圈样式的*/
                firstBar.setSecondaryProgress(i + 10);
                /**默认的进度条无法显示进行的状态，故我们可以不定义第二进度条的样式。*/
            } else {
                // 设置进度条处于不可见状态
                /**隐藏进度条*/
                firstBar.setVisibility(View.GONE);
                secondBar.setVisibility(View.GONE);
            }
            i = i + 10;
        }
    }
}